/***********************************************************************************
@file   
@author
@attention
@index
***********************************************************************************/
#include "page.h"
/***********************************************************************************
 * @param  const page
***********************************************************************************/
uint8_t display_page;                                                     //显示的页面
uint8_t return_page;                                                      //返回页面
uint8_t return_time;                                                      //返回时间
uint8_t row_flag;                                                         //指示的行
uint8_t col_flag;                                                         //指示的列
/***********************************************************************************
* @brief 前往指定页面 
***********************************************************************************/
void page_goto(uint8_t page)
{
    display_page=page;
}
/***********************************************************************************
* @brief 显示临时对话框
***********************************************************************************/
void dis_dialog(uint8_t dis_page,uint8_t ret_page,uint8_t dis_time)
{
    page_goto(dis_page);
    return_page=ret_page;
    return_time=dis_time;
}
/***********************************************************************************
* @brief 空闲页 处理其他参数 
***********************************************************************************/
void page_dis_idle(void)
{  
    page_goto(PAGE_DIS_MAIN);
}
/***********************************************************************************
* @brief 主页面
***********************************************************************************/
void page_dis_main(void)
{  
    uint32_t temp_data;
    temp_data = mydata;
    if(temp_data<3)
        temp_data = 0;
    if(status<3)
    {   
        lcd_dis_main(temp_data,system_data.precision,status,\
                        system_data.unit,NO_PARA,PARA,PARA,\
                        system_data.myaddress);    
    }
    else if(status==6)  
    {
      lcd_dis_main(test_num,1,4,\
                NO_PARA,NO_PARA,PARA,PARA,\
                system_data.myaddress);    
    }
    else//故障
    {
        lcd_dis_err(3,system_data.myaddress);  
    }
    
}
/***********************************************************************************
* @brief  输入密码
***********************************************************************************/
void page_password_in(void)
{
    lcd_dis_num4(col_flag,password_in);  
}
/***********************************************************************************
* @brief 显示低报
***********************************************************************************/
void page_dis_low(void)
{
    lcd_dis_main(system_data.low_alarm,system_data.precision,\
                 1,system_data.unit,NO_PARA,NO_PARA,NO_PARA,NO_PARA);
}
/***********************************************************************************
* @brief 显示高报
***********************************************************************************/
void page_dis_high(void)
{
    lcd_dis_main(system_data.high_alarm,system_data.precision,\
                2,system_data.unit,NO_PARA,NO_PARA,NO_PARA,NO_PARA);		
}
/***********************************************************************************
* @brief 显示量程
***********************************************************************************/
void page_dis_range(void)
{
    lcd_dis_main(system_data.range_ability,system_data.precision,\
                NO_PARA,system_data.unit,4,NO_PARA,NO_PARA,NO_PARA); 		
}
/***********************************************************************************
* @brief 显示跨度
***********************************************************************************/
void page_dis_kuadu(void)
{   
    if(temporary_value_u16==0)
        lcd_dis_main(system_data.kuadu[0],system_data.precision,NO_PARA,system_data.unit,1,NO_PARA,PARA,1);  
    if(temporary_value_u16==1)
        lcd_dis_main(system_data.adc[0],system_data.precision,NO_PARA,NO_PARA,1,NO_PARA,PARA,1);  
    if(temporary_value_u16==2)
        lcd_dis_main(system_data.kuadu[1],system_data.precision,NO_PARA,system_data.unit,1,NO_PARA,PARA,2);  
    if(temporary_value_u16==3)
        lcd_dis_main(system_data.adc[1],system_data.precision,NO_PARA,NO_PARA,1,NO_PARA,PARA,2); 
    if(temporary_value_u16==4)
        lcd_dis_main(system_data.kuadu[2],system_data.precision,NO_PARA,system_data.unit,1,NO_PARA,PARA,3);  
    if(temporary_value_u16==5)
        lcd_dis_main(system_data.adc[2],system_data.precision,NO_PARA,NO_PARA,1,NO_PARA,PARA,3);     
}
/***********************************************************************************
* @brief 显示地址
***********************************************************************************/
void page_dis_addr(void)
{
    lcd_dis_main(system_data.myaddress,1,NO_PARA,NO_PARA,NO_PARA,PARA,NO_PARA,NO_PARA);	
}
/***********************************************************************************
* @brief 设置低报
***********************************************************************************/
void page_set_low(void)
{  
    lcd_set_data(4,col_flag,temporary_value_u16,system_data.precision,\
                1,system_data.unit,NO_PARA); 
}
/***********************************************************************************
* @brief 设置高报
***********************************************************************************/
void page_set_high(void)
{
    lcd_set_data(4,col_flag,temporary_value_u16,system_data.precision,\
                3,system_data.unit,NO_PARA);   
}
/***********************************************************************************
* @brief 设置地址 0-128 col 0-2  进来 0
***********************************************************************************/
void page_set_address(void)
{ 
    lcd_set_uint(col_flag+1,temporary_value_u16,PARA);   
}
/***********************************************************************************
* @brief 设置预热时间 10-100s
***********************************************************************************/
void page_set_preheat(void)
{ 
    lcd_set_uint(col_flag+1,temporary_value_u16,NO_PARA);   
}
/***********************************************************************************
* @brief 设置报警时间
***********************************************************************************/
void page_set_speak_times(void)
{ 
    lcd_set_uint(col_flag+1,temporary_value_u16,NO_PARA);   
}
/***********************************************************************************
* @brief 设置精度 10-100s
***********************************************************************************/
void page_set_precison(void)
{
   lcd_set_dot(temporary_value_u16);
}
/***********************************************************************************
* @brief 设置满电
***********************************************************************************/
void page_set_energy_type(void)
{
    lcd_dis_main(temporary_value_u16,1,\
                NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA);    
}
/***********************************************************************************
* @brief 是否显示电量
***********************************************************************************/
void page_set_energy(void)
{
    lcd_dis_main(temporary_value_u16,1,\
                NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA);      
}
/***********************************************************************************
* @brief 报警延迟 1-99
***********************************************************************************/
void page_set_alarm_times(void)
{
    lcd_set_uint(col_flag+2,temporary_value_u16,NO_PARA);  
}
/***********************************************************************************
* @brief 零点设置
***********************************************************************************/
void page_set_zero(void)
{  
    lcd_dis_main(adcdata,system_data.precision,\
                NO_PARA,NO_PARA,2,NO_PARA,NO_PARA,NO_PARA);      
}
/***********************************************************************************
* @brief 查看零点
***********************************************************************************/
void page_dis_zero(void)
{  
    lcd_dis_main(system_data.zero,1,\
                NO_PARA,NO_PARA,2,NO_PARA,NO_PARA,NO_PARA);      
}

/***********************************************************************************
* @brief 标定 adc
***********************************************************************************/
void page_dis_cal(void)
{
    page_goto(PAGE_DIS_MAIN);  
//    lcd_dis_main(system_data.adc[temporary_value_u16],1,\
                NO_PARA,NO_PARA,NO_PARA,PARA,temporary_value_u16);  
}
/***********************************************************************************
* @brief  显示精度
***********************************************************************************/
void page_dis_precision(void)
{
     page_goto(PAGE_DIS_MAIN);  
//    uint16_t str;
//    if(system_data.precision == 1)
//        str = '1';
//    else if(system_data.precision == 10)
//        str = '2';
//    else if(system_data.precision == 100)
//        str = '3';  
//           
//    lcd_set_dot(str);   
}
/***********************************************************************************
* @brief  设置气体名称
***********************************************************************************/
void page_set_name(void)
{
    lcd_set_uint(col_flag+1,temporary_value_u16,NO_PARA);       
}
/***********************************************************************************
* @brief  执行6868 6969
***********************************************************************************/
void page_dis_perform(void)
{
    lcd_dis_main(time_perform_wait/100+1,1,\
                NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA);   
}

/***********************************************************************************
* @brief  设置主机地址
***********************************************************************************/
void page_set_host(void)
{ 
    lcd_dis_host(col_flag,temporary_value_u16,temporary_value_u16_1);
}
/***********************************************************************************
* @brief  关机
***********************************************************************************/
void page_dis_shut(void)
{
    if(row_flag)
    {
        lcd_dis_switch(0);
    }
    else
    {
        lcd_dis_switch(1);//on
    }                  
}
/***********************************************************************************
* @brief  单位显示 
***********************************************************************************/
void page_dis_unit(void)
{ 
    page_goto(PAGE_DIS_MAIN);   
//    lcd_dis_main(system_data.unit,1,NO_PARA,\
//                 system_data.unit,NO_PARA,NO_PARA,NO_PARA);     
}
/***********************************************************************************
* @brief  量程设置
***********************************************************************************/
void page_set_range(void)
{
    lcd_set_data(4,col_flag,temporary_value_u16,system_data.precision,\
                 NO_PARA,system_data.unit,NO_PARA);        
}
/***********************************************************************************
* @brief  显示ADC
***********************************************************************************/
void page_dis_adc(void)
{
    temporary_value_u16 = adcdata;//进入1999随时数值
    lcd_dis_main(temporary_value_u16,1,NO_PARA,\
                 NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA);         
}
/***********************************************************************************
* @brief  单位设置
***********************************************************************************/
void page_set_unit(void)
{   
    lcd_set_data(4,3,temporary_value_u16,1,\
                NO_PARA,temporary_value_u16,NO_PARA);     
}
/***********************************************************************************
* @brief  活跃线设置
***********************************************************************************/
void page_set_hot(void)
{   
    lcd_set_data(4,col_flag,temporary_value_u16,1,\
                NO_PARA,NO_PARA,NO_PARA);     
}
/***********************************************************************************
* @brief  手动设置零点
***********************************************************************************/
void page_set_zero_manual(void)
{
    lcd_set_data(4,col_flag,temporary_value_u16,1,\
                NO_PARA,NO_PARA,NO_PARA);   
}

/***********************************************************************************
* @brief  手动设置跨度
***********************************************************************************/
void page_set_span_manual(void)
{
    if(temporary_value_u32==1)//kuadu
    {
        lcd_set_data(4,col_flag,temporary_value_u16_1,system_data.precision,\
                NO_PARA,NO_PARA,1);   
    }
    else//adc
    {
        lcd_set_data(4,col_flag,temporary_value_u16,system_data.precision,\
                NO_PARA,NO_PARA,NO_PARA);      
    }
}

/***********************************************************************************
* @brief  设置跨度 2288//2258//2238
***********************************************************************************/
void page_set_span(void)
{
    lcd_set_data(4,col_flag,temporary_value_u16,system_data.precision,\
                NO_PARA,NO_PARA,1);   
}
/***********************************************************************************
* @brief  通气标定
***********************************************************************************/
void page_set_cal(void)
{
    lcd_dis_main(mydata,system_data.precision,NO_PARA,\
                 system_data.unit,5,NO_PARA,NO_PARA,NO_PARA);    
}
/***********************************************************************************
* @brief  设置lora数据不稳定时 是否发包
***********************************************************************************/
void page_set_lora_sta(void)
{
    lcd_dis_main(temporary_value_u16,1,\
                NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA,NO_PARA);     
}
/***********************************************************************************
* @brief  设置lora信道 0-15
***********************************************************************************/
void page_set_lora(void)
{
    lcd_set_data(4,col_flag+2,temporary_value_u16,1,\
                NO_PARA,NO_PARA,NO_PARA);   
}
/***********************************************************************************
* @brief  设置浓度报警声音选择
***********************************************************************************/
void page_set_speak(void)
{
    lcd_set_uint(col_flag,temporary_value_u16,NO_PARA);  
}
/***********************************************************************************
* @brief  
***********************************************************************************/
void page_set_mobility(void)
{
    lcd_set_uint(col_flag+1,temporary_value_u16,NO_PARA); 
}
/***********************************************************************************
* @brief  
***********************************************************************************/
void page_set_angle(void)
{
    lcd_set_uint(col_flag+2,temporary_value_u16,NO_PARA); 
}

/***********************************************************************************
* @brief  操作成功
***********************************************************************************/
void page_dis_success(void)
{
    lcd_dis_result(2);                        
}
/***********************************************************************************
* @brief  操作失败
***********************************************************************************/
void page_dis_fail(void)
{
    lcd_dis_result(1); 
}
/***********************************************************************************
* @brief  显示函数
***********************************************************************************/
void page_dis_update(void)
{
    //--------------------------------------------活动界面判定
    if((display_page==PAGE_SET_CAL)||(display_page==PAGE_SET_ZERO))
    {
        activity=0;
    }
    else
        activity=1;
    //--------------------------------------------活动界面返回时间阈值判定，下面9键显示类3秒返回
    if((display_page==PAGE_DIS_LOW)||(display_page==PAGE_DIS_HIGH)||(display_page==PAGE_DIS_ADDR)||\
       (display_page==PAGE_DIS_RANGE)||(display_page==PAGE_DIS_UNIT)||(display_page==PAGE_DIS_PRECISION)||\
       (display_page==PAGE_DIS_ZERO)||(display_page==PAGE_DIS_KUADU)||(display_page==PAGE_DIS_CAL)
      )
       dead_time_th = 300; 
    else
        dead_time_th = 1000;    
    //--------------------------------------------显示指定页面主循环不断刷新
    switch(display_page)
    {
        case PAGE_DIS_IDLE:             page_dis_idle();            break;    
        case PAGE_DIS_MAIN:             page_dis_main();            break;                                        
        case PAGE_PASSWORD_IN:          page_password_in();         break;                          
        case PAGE_SET_NAME:             page_set_name();            break;                                                   
        case PAGE_SET_PRECISION:        page_set_precison();        break;                         
        case PAGE_SET_HOT:              page_set_hot();             break;                  
//        case PAGE_SET_NEGATIVE:                                     
        case PAGE_SET_LOW:              page_set_low();             break;                                              
        case PAGE_SET_HIGH:             page_set_high();            break;                                             
        case PAGE_SET_ZERO:             page_set_zero();            break; 
        case PAGE_SET_ZERO_MANUAL:      page_set_zero_manual();     break;
        case PAGE_SET_SPAN_MANUAL:      page_set_span_manual();     break;

        case PAGE_SET_ADDRESS:           page_set_address();        break;                                                
        case PAGE_SET_ENERGY:            page_set_energy();         break;                                                       
        case PAGE_SET_ENERGY_TYPE:       page_set_energy_type();    break;                                                       
        case PAGE_SET_HOST:              page_set_host();           break;  
        
        case PAGE_DIS_ADC:               page_dis_adc();            break;                  
        case PAGE_SET_UNIT:              page_set_unit();           break;                                            
        case PAGE_SET_RANGE:             page_set_range();          break;
        case PAGE_SET_SPEAK:             page_set_speak();          break;

        case PAGE_SET_PREHEAT:           page_set_preheat();        break;                                                                                                          

        case PAGE_SET_SPAN :             page_set_span();           break;                               
        case PAGE_SET_CAL:               page_set_cal();            break;                                               
        case PAGE_SET_ALARM_TIMES:       page_set_alarm_times();    break; 
        case PAGE_SET_SPEAK_TIMES:       page_set_speak_times();    break; 


        case PAGE_DIS_LOW:             page_dis_low();      break; 
        case PAGE_DIS_HIGH:            page_dis_high();     break; 
        case PAGE_DIS_ADDR:            page_dis_addr();     break; 
        
        case PAGE_DIS_RANGE:           page_dis_range();    break;
        case PAGE_DIS_UNIT:            page_dis_unit();     break;
        case PAGE_DIS_PRECISION:       page_dis_precision();break;
        
        case PAGE_DIS_ZERO:            page_dis_zero();     break;         
        case PAGE_DIS_KUADU:           page_dis_kuadu();    break; 
        case PAGE_DIS_CAL:             page_dis_cal();      break;       
 
        case PAGE_SET_LORA:            page_set_lora();     break;
        case PAGE_SET_LORA_STA:        page_set_lora_sta(); break;
        case PAGE_DIS_FAIL:            page_dis_fail();     break;        
        case PAGE_DIS_SUCCESS:         page_dis_success();  break;
        
        case PAGE_SET_MOBILITY:        page_set_mobility();  break;
        case PAGE_SET_ANGLE:           page_set_angle();     break;
        case PAGE_DIS_SHUT:            page_dis_shut();      break;
//        case PAGE_DIS_6969:
//        case PAGE_DIS_6868:            page_dis_perform();  break;

  
        default: break;
           
     }
   
}
